package com.ssy.lingxi.message.service;


import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.message.api.vo.response.MessageUnreadCountResponse;
import com.ssy.lingxi.message.enums.MessageBusinessTypeEnum;
import com.ssy.lingxi.message.model.vo.MobileMessageDetailResponse;
import com.ssy.lingxi.message.model.vo.MobileMessageResponse;

import java.util.List;


/**
 * App系统消息服务类
 * @author yzc
 * @version 2.0.0
 * @date 2020/10/27
 */
public interface IMobileMemberMessageService {

    /**
     * 系统消息统计
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<MessageUnreadCountResponse> unreadCount(UserLoginCacheDTO loginUser);

    /**
     * 系统公告分页列表
     * @param request 接口参数
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<PageData<MobileMessageResponse>> pagePlatformMessage(PageVO request, UserLoginCacheDTO loginUser);

    /**
     * 业务消息分页列表
     * @param request 接口参数
     * @param loginUser 登录用户信息
     * @return 接口参数
     */
    Wrapper<PageData<MobileMessageResponse>> pageBusinessMessage(PageVO request, UserLoginCacheDTO loginUser, List<MessageBusinessTypeEnum> messageBusinessTypeEnumList);

    /**
     * 消息详情
     * @param id 消息id
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<MobileMessageDetailResponse> getMemberMessage(Long id, UserLoginCacheDTO loginUser);
}

